package br.gov.mi.infraestrutura.crud;

import java.io.Serializable;
import java.util.List;

import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

public interface CrudServico<T, ID extends Serializable> {

	T incluir(T resource);

	T alterar(T resource);

	void excluir(T resource);

	void excluir(ID id);

	T recuperarPorId(ID id);

	List<T> recuperarTodos();

	Page<T> recuperarTodos(Pageable pageRequest);

	Long contar();

}
